查看原文
其他

AIX系统的备份与恢复 | 周末送文档

社区会员黄建亮分享


本文档介绍了AIX常用的针对vg、lv、以及使用不同介质时的备份


备份需要考虑的问题


在设计系统备份方案时,要考虑系统的各个组成部件和运行特征,并设计与之对应的、符合现场实施情况的备份方案。

备份的目标是文件及数据,他们存储在AIX的存储结构中。AIX的存储体系结构有下面几个层次:

a.物理硬盘是底层的物理存储单元,它们最终存储数据

b.卷组是由n块物理磁盘组成的存储集合,被LVM分区化处理,划分为等尺寸的物理分区

c.一个vg中的若干空闲pp组合为一个集合,即为lv

d.lv可以创建文件系统,或直接作为裸设备使用

从文件系统角度来看存储问题时,AIX整个系统的存储框架可用下图来描述:

AIX中备份操作命令汇总

命令

功能简述

备份功能

tar

将备份的文件目录写入备份介质中,或从备份存储介质中取出已备份文件来完成恢复,该命令即可指向文件,也可指向一个目录,若是目录,则该目录及其中的所有文件和目录都会被备份引用

文件和目录局部备份

cpio

备份文件和目录到备份的存储介质中,或从备份介质中取出已备份文件来完成操作。但注意,当文件的大小超过2GB时,cpio命令不启用(可用pax替换)

文件和目录局部备份

dd

读取infile参数或标准输入,并执行指定的转换,然后将被转换的数据输出到outfile参数指定的存储位置或标准输出中。该命令可指定输入和输出的块大小和数量,可以利用裸物理I/O的性能优势

设备硬拷贝

pax

备份文件和目录,列出已备份文件的列表,恢复已备份文件,AIX中转储2GB以上备份文件的首选方法,而且pax还可用来查看和修改tar文件和cpio文件的内容

文件和目录局部备份

mksysb

为rootvg创建可用于恢复性安装的备份映像。最典型的特征是,备份可通过磁带和光盘完成,且这些设备可用于AIX系统的恢复性启动和安装

系统备份

savevg

备份用户自定义vg(非根vg)的定义和数据

系统备份

backup

备份文件和目录到指定的备份介质上,如磁带和软盘。备份操作可按如下两种方式进行:1.按文件备份(使用-i标记)

2.按索引节点对完整的文件系统进行备份

文件和目录局部备份、文件系统备份

restore

用来读取backup命令创建的备份档案文件并提取其中已备份的文件,这里的备份文件既可以是指定文件的备份格式,也可以是完整文件系统的备份格式

文件和目录局部恢复、文件系统恢复

restvg

restvg是savevg的反向命令,用于恢复一个卷组的定义和数据

系统恢复

tctl

用来控制磁带设备的操作,如进带、倒带、张紧等

磁带操作

tcopy

复制磁带,其衍生用途是可以查看磁带内容

磁带操作

压缩命令

compress、uncompress、pack、unpack、gzip、gunzip、zcat等

文件压缩

 

备份rootvg


mksysb:该命令备份rootvg卷组上已安装的文件系统、换页空间的定义、lv的分配策略,以及最关键的一项——备份中会包含的AIX启动映像。备份介质可以是磁带和光盘,也可以是网络(NIM)服务器。

rootvg备份磁带的一个特别的支出是可以用其引导AIX系统启动,并在启动后执行恢复式系统安装。

上图中的rootvg才是rootvg真正的数据备份区域,这里包含了在rootvg中全部“可看到的”数据,包括全部已挂载文件系统的内容(不包括未挂载lv或裸设备上的内容,数据库一般倾向于采用裸设备方式存数据,而这部分数据不会被mksysb备份下来)

一般来说,需要备份rootvg时的情况有下面这些:

a.系统完成应用安装后,上线前

b.系统进行了某种再配置,包括挂接新设备和更改设备的属性

c.系统中子服务设置被调整,如增减子系统服务和服务属性改变等

d.系统中某种运行特征发生了改变,如增减用户和调整用户权限等

e.安装AIX升级程序和修补程序等

f.其他涉及到rootvg更改的管理行为发生前后

g.定期执行,如每年两次 

在smit中备份

#smit mksysb

backup device or FILE:指定备份的目标备份介质,一般为光盘或磁带

Create MAP files:指定是否要创建映射文件,若这个备份用于安装其他的及其,可选yes

EXCLUDE files:备份时要排除的文件(已经存储在rootvg上)

List files as they are backed up:备份时是否查看备份过程信息,选择no可略微提升备份速度

Verify readability if tape device:若备份介质是磁带,此处需要yes,一遍对磁带进行检查,确保磁带能够读取

Expand /tmp if need:设为yes,以避免因/tmp目录不够大而导致备份失败

Generate new/image.data file:/image.data包含了AIX安装过程中创建rootvg所需的参数,一般不推荐用户自己编辑这个文件,smit菜单进行mksysb时,该选项默认yes

选项

说明

-e

备份时删除/etc/exclude.rootvg文件中列出的目录和文件

-i

备份过程中自动生成/image.data文件

-m

调用mkszfile命令以生成映射文件

-X

在需要时自动扩展/tmp

mksysb命令的选项

#mksysb -m -i -X /dev/rmt0

如有多台AIX系统需要备份,则可以采用网络备份的方式进行rootvg备份,即采用NIM方式进行rootvg备份。

备份中的文件排除

  编辑一个排除文件,如不希望在mksysb备份中包含文件系统/db和/tmp,则可以创建并编辑/etc/exclude.rootvg文件,在其中加入不备份的文件系统和目录(不能有空行),示例:

/db/

/tmp/

接下来在通过smit菜单进行备份时,选EXCLUDE files为yes即可,或者通过高级命令加参数“-e”,#mksysb -e /dev/rmt0


用户类vg备份


savevg命令可实现对AIX系统中非rootvg,如安装数据库的vg或者安装中间件系统的vg的备份。savevg将备份属于指定vg的所有文件,且vg必须激活(varyon),而且vg中需要参与备份的文件系统必须处于挂载状态。

通过smit菜单

#smit savevg

通过高级命令

#savevg -if /dev/rmt0 datavg

备份文件黑名单:/etc/exclude.vgname  处于该名单中的文件将不会备份

若datavg中存放了Oracle系统,其中,目录/home/oracle/product/data/orcl/中存放了Oracle数据库orcl的数据库文件(如,数据文件、控制文件、日志文件等),如果当前Oracle数据库处于启动打开状态,则使用savevg命令不会对该目录进行备份(事实上不应备份,在某些平台上,这样做会造成Oracle运行错误,导致Oracle宕机)。编辑/etc/exculde.datavg文件:

#vi /etc/exclude.datavg

输入下面内容,并保证其中没有其他空行,然后保存

/home/oracle/produce/data/orcl/


文件系统备份操作


除了mksysb和savevg进行vg级的备份外,管理员还可以用若干AIX命令进行文件系统和文件级的局部备份。如:backup,有两种使用方式

按指定文件备份

#backup 选项

安索引节点备份

#backup 选项

选项

说明

-f

指定用于备份的设备名称,如/dev/rmt0

-i

指定按名称从标准输入和存档中读取文件

-p

指定在存档前对文件进行打包或压缩,支队2GB以下文件打包

-q

指定备份介质已准备就绪,指定-q选项时,backup将不提示准备备份介质,而是继续执行,该选项多用于非交互式备份

 

-u

设定backup在/etc/dumpdates中记录备份的时间和级数,/etc/dumpdates文件保留了backup命令的备份信息,包括所备份的文件系统、上次备份级数和进行增量备份的日期

-v

指定backup命令显示有关备份过程中的附加信息,使backup命令在标准输出设备上输出所备份文件的文件名

常和find命令配合使用,如:备份/db/oracle/product中的所有目录和文件,可先采用find查找/db/oracle/product下的所有文件和目录,然后通过管道命令继续执行backup备份命令:

#cd /db/oracle/product

#find .-depth | backup -i -f /dev/rmt0

backup命令的另一个亮点是可以直接备份文件系统,备份介质不仅可以是磁带、软盘,还可以是某个文件系统。如:文件系统/db处于挂在状态

#backup -f /db/backup.file -0(数字零) -u/db  将文件系统/db备份到文件/db/backup.file中

注意:若backup使用的是相对命令执行备份,则,未来在使用restore命令进行文件恢复时,需要在同样的目录下执行restore操作,否则文件可能会被恢复到其他目录中


可用于备份的命令


1.tar   传统的UNIX磁带存档命令,使用tar可通过磁带或磁盘介质备份文件和目录树

选项

说明

-e

创建一个新的压缩备份

-f

指定备份设备名称

-v

列出每个被处理的文件名称

-x

从压缩备份中取出一个或多个文件

-t

显示压缩备份中包含的文件

tar命令的常用选项

示例:#tar -cvf /dev/rmt0/db/oracle  该方法会将/db/oracle备份到磁带上

#tar -tvf /dev/rmt0|more      查询磁带上备份的文件列表

从tar备份中恢复文件

#tar -xvf /dev/rmt0 /db/oracle   将备份文件恢复到/db/oracle中

#rm /db/oracle/admin/orcl/pfile/init.ora.26200993244

#tar -xvf /dev/rmt0/db/oracle/admin/orcl/pfile/init.ora.26200993244

以上两条命令实现了用备份中的文件来替换当前文件(局部恢复)

2.cpio  多用于Linux环境中的已被压缩备份命令,管理员可以使用磁带、磁盘等存储设备进行文件及目录的备份和恢复

选项

说明

-c

以ASCII字符的形式读写头信息

-d

按需创建目录

-i

读取标准输入,有cpio创建一个压缩备份文件

-p

从标准输入中读取文件路径名称,将这些文件复制到用目录参数命名的目录中

-m

保留以前的修改时间

-o

从标准输入中读取文件路径名称,把这些文件连同路径名和状态信息一起复制到标准输出中

-v

列出文件名称

-t

创建一个目录

cpio命令的常用选项

采用列表方式显示磁带上的备份文件内容

#cpio -itv < /dev/rmt0 |more

采用cpio方式备份的文件需要使用cpio命令进行恢复下面的示例将磁带上的文件恢复到/db/oracle目录中

#cd /db/oracle

#cpio -idmv < /dev/rmt0

cpio备份被用来恢复一个数据库的参数文件(Oracle参数文件)

#rm/db/oracle/admin/orcl/pfile/init.ora.26200993244

#cpio -idmv < /dev/rmt0 “/db/oracle/admin/orcl/pfile/init.ora.26200993244”

3.dd  用于从输入处读取数据,并将数据转换格式后输出到指定设备中,主要用于对裸设备形式数据库形式文件的备份和迁移。

将Sybase数据库的裸设备存储迁移到文件系统的过程

a.在Sybase的ISQL环境下关闭数据库系统

b.将数据库所使用的裸设备(使用命令创建裸设备时带有-T选项,设置裸设备的偏移量为0)复制到文件系统中

    1>shutdown with nowait

    2>go

c.执行裸设备备份(将ASE数据库的设备ASE_DEV_1所对应的裸设备/deb/asedev101备份到备份目录文件/backup/asedev101.back中)

#dd if=/dev/asedev101of=/backup/asedev101.new

d.删除裸设备(/dev/asedev101)

e.创建一个指向输出文件(/backup/asedev101.new)的链接文件(如/dev/asedev101)

f.将链接文件的属主关系授予Sybase用户

g.重启Sybase ASE系统,完成设备的迁移

4.pax  用于备份、读取文件、列出备份文件列表等。与tar相似,是AIX一个特定备份命令

常用选项:

-a:指定将文件附加到归档末尾

-r:指定读取备份归档文件

-w:指定创建备份归档文件

将当前目录的内容复制到磁带设备/dev/rmt0中

#pax -wf /dev/rmt0

复制/db/db2和/db/oracle到磁带设备/dev/rmt0

#pax -wvf  /dev/rmt0  -x pax  /db/db2  /db/oracle

列出磁带/dev/rmt0的内容

#pax -vf  /dev/rmt0  -x  pax

5.find 通过shell的管道符,配合find命令来实现对那些“需要找出来的”某些“指定文件”的备份  常用的备份命令为backup和cpio

使用backup针对DB2的安装文件进行备份,备份介质是磁带

#cd /db/db2

#find .  -depth | backup -i -f /dev/rmt0 

6.增量备份方式

基于全部内容的备份:完全备份

基于改变内容的备份:增量备份

backup在指定使用-u选项的情况下可以通过指定备份级别来完成增量备份,支持的最大增量级别是9。

增量备份级别解释:

0级备份(level 0):备份一个指定文件系统中的所有数据。0级备份以后的所有后续备份级别,只会将前一级备份完成后所发生的修改进行备份,如2级备份,将只备份在1级备份完成后再次发生变化的数据。

增量级别非范围是0-9。对大型文件系统,可采用如下备份方案:

a.每月指定一天执行0级备份

b.每周指定一天完成1级备份

c.每天指定时间完成2级备份

对应的命令分别为:

a.#backup -0 -uf /dev/rmt0 /db/db2

b.#backup -1 -uf /dev/rmt0 /db/db2

c.#backup -2 -uf /dev/rmt0 /db/db2

AIX维护增量备份信息的文件时/etc/dumpdates文件,backup在采用文件系统方式备份时(采用按索引节点进行备份的方式)记载增量备份信息的一个日志。

7.数据库系统备份

如果AIX用于提供数据库系统运行环境,如Oracle、DB2等数据库系统,那么需要注意:数据库系统的备份恢复方法和AIX的备份恢复方法时完全不同的,切不可按AIX的方法进行数据库的备份。

数据库系统安装完成后,从启动到处于运行状态,数据库软件可能会使用下面4种操作系统的存储资源:

a.数据库系统软件,也就是数据库系统的可执行程序和库文件等。如有可能,需在系统存储布局之初尽量把这部分内容放置在单独的vg中

b.数据库运行环境文件,如Oracle数据库所需的/etc/oratab、/etc/oracle/ocr.loc、/etc/oralnst.loc、/usr/local/bin等文件和目录,这些文件一定会存在rootvg卷组上

c.与数据库数据存储相关的文件,包括数据库的数据文件(Oracle)、设备文件(Sybase)、容器文件(DB2)、日志文件(MySQL)等,他们是应用数据的存储介质。处于存储独立性方面的考虑,这部分内容也最好放置在单独的vg存储区域上。

d.数据库备份文件,如Oracle的RMAN备份,Sybase、MySQL的DUMP备份等。这些文件是数据库可恢复性的前提和保证,因此,这部分内容也最好放在单独的vg存储区域上。 

注意:上面a、b、d三种内容可用AIX UNIX的备份手段。但c(与数据库存储相关的文件)的备份则“一定不能”采用AIX的操作系统级备份手段,应采用数据库自身的备份模块,如Oracle的RMAN,Sybase的Backup Server等,其实施方法和过程请参见两本技术书籍《Oracle大型数据库系统在AIX/UNIX上的实战详解》、《Sybase数据库在UNIX、Windows上的实施和管理》


恢复崩溃的系统


系统出现错误甚至是崩溃,往往有多重原因:

a.AIX BOS系统崩溃

b.存储介质失败

c.应用系统、数据库系统崩溃

d.认为错误会导致故障

e.Bugs因素

单就AIX而言,其失败可能发生在如下几个层面:

a.AIX系统崩溃从而导致系统不可启动

b.AIX物理盘损、vg失败不可用

c.AIX文件系统不可访问

d.AIX中文件的损坏或丢失

e.其他AIX错误 

rootvg失败的恢复

rootvg的备份时专门用来恢复AIX操作系统的备份。重启系统,设置系统采用磁带(rootvg备份一般采用磁带方式)作为引导设备来启动。之后进入维护模式,选择对应选项进行rootvg的恢复。

由于AIX具有vg数据独立性,rootvg的恢复安装不会影响到其他vg的状态和数据,也就是说,AIX系统中其他vg的可用状态是不会受到影响的。

根vg文件的恢复

如果rootvg并未损坏,只是其中某些文件损坏或丢失了,这时管理员不必执行根vg失败的恢复操作,仅需从mksysb备份中恢复某些文件即可,过程如下:

1.将mksysb备份插入磁带机,操纵磁带(如/dev/rmt0)使之倒回至头部

  #tctl -f /dev/rmt0 rewind

2.rootvg备份分为4个片段,其中前三个备份片段分别是基本操作系统BOS启动映像数据、基于操作系统安装映像和虚拟目录TOC,第四个片段是rootvg的数据备份。因此这里需要将磁带前进3个备份标记,倒回第四个剪短的起始处。注意,这里使用的磁带(如/dev/rmt0设备)设备文件时/dev/rmt0.1。

#tctl -f/dev/rmt0.1 fsf 3

3.从mksysb镜像上恢复文件(本例中恢复/etc/hosts文件),以完成恢复

#restore -xqvf/dev/rmt0.1 /etc/hosts

注意:若rootvg出现某种问题,且系统当前还在运行,这时不建议立即重启AIX,因为一旦关闭,AIX可能无法再次成功启动,因为系统中还存在这个“损坏”。

非根vg的恢复

假设非根vg(如datavg)上定义了一个lv(lv_data),在lv_data上存在一个JFS2文件系统。

对datavg采用的备份方式:

#savevg -f ‘/datavg.backup’-vimX datavg

如需确定一个备份文件的内容,可使用下面命令查看其中文件列表:

#listvgbackup -l-f /datavg.backup

对这个备份进行恢复。首先,确定这个vg(中的数据)要恢复到什么位置,通过smit菜单:

#smit restvg

卷组文件恢复

vg备份不仅可以用来恢复vg,还可以用来恢复其中的局部文件,通过restore命令实现。下面使用卷组备份(文件)来恢复卷组数据,在示例中,datavg上有一个文件系统/data,此文件系统中有一个文件testfile0,但该文件已经丢失。

#ls/data/testfile0   提示文件不存在

从卷组备份(savevg备份)中恢复文件testfile0到其原始位置上:

#cd /

#restore -xdvqf/datavg.backup ./data/testfile0

#ls/data/testfile0  发现文件得到恢复

文件系统的恢复

文件系统可能会遇到如下问题:

1.超级块损坏

2.inode数据错误

3.某种原因下的文件错误

4.文件丢失等

用于恢复的命令为:restore

常用选项如下:

-d:恢复所有文件和子目录

-M:设置访问权,并将被恢复文件的修改时间设置为恢复时间

-i: 采用交互式的方式从文件系统备份中恢复指定文件

-q:表明介质是否已经准备完成

-v:恢复以详细模式进行,恢复时提供细节

-x:恢复单独的文件

-f:指定备份所在的输入设备或文件名

将备份到磁带设备/dev/rmt0的整个文件系统恢复到原始位置

#restore -rvqf/dev/rmt0

从磁带备份中恢复一个特定目录

#restore -xdvqf/dev/rmt0 /Dir/mydirectory 

恢复一个指定文件

#restore -xvqf/dev/rmt0 /Dir/myfile


点击阅读原文可下载原文档


长按二维码关注“AIX专家俱乐部”公众号

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存